package com.wgy.day33其他增强流.序列化流和反序列化流;

import java.io.*;
import java.util.ArrayList;

/*
序列化集合
当我们想在文件中保存对个对象的时候
可以吧多个对象存储到一个集合中
对集合进行序列化和反序列化
分析:
1.定义一个存储Person对象的ArrayList集合
2.往ArrayList集合中添加Person对象
3.创建一个序列化流ObjectOutputStream对象
4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
5.创建一个反序列化ObjectInputStream对象
6.使用ObjectInputStream对想中的方法readObject 读取文件中保存的集合
7.把Object类型的集合转换为ArrayList类型
8.遍历ArrayList集合
9.释放资源
*/
public class Demo04Test {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //1.定义一个存储Person对象的ArrayList集合
        ArrayList<Person> list = new ArrayList<>();
        //2.往ArrayList集合中添加Person对象
        list.add(new Person("张三",15));
        list.add(new Person("李四",18));
        list.add(new Person("王五",14));
        //3.创建一个序列化流ObjectOutputStream对象
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("D:\\小云\\abc\\personList.txt"));
        //4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
        oos.writeObject(list);
        //5.创建一个反序列化ObjectInputStream对象
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:\\小云\\abc\\personList.txt"));
        //6.使用ObjectInputStream对想中的方法readObject 读取文件中保存的集合
        Object obj = ois.readObject();
        //7.把Object类型的集合转换为Arraylist类型
        ArrayList<Person> list1=(ArrayList<Person>) obj;
        //8.遍历ArrayList集合
        for (Person p : list1) {
            System.out.println(p);
        }

       // 9.释放资源
        ois.close();
        oos.close();



    }
}
